やりたいこと
Amazon RDSはインスタンスクラスによってサポートされているエンジンとエンジンバージョンに制限がある。
RDSとAuroraそれぞれのサポート状況は下記を確認できる。
- RDSユーザーガイド
- Auroraユーザーガイド
これをAWS CLIで見やすい形式にして取得したい。
AWS CLIコマンド
インスタンスクラスとエンジン、エンジンバージョンの組み合わせは describe-orderable-db-instance-options コマンドで取得できる。
CLI だけ
--engine
オプションのみ必須なので、インスタンスクラスかエンジンバージョンを指定すればそれぞれのサポート状況を確認できる。
$ aws rds describe-orderable-db-instance-options \
--engine aurora-mysql \
# --db-instance-class db.t4g.medium \
--engine-version 8.0.mysql_aurora.3.02.2 \
--query 'OrderableDBInstanceOptions[].[DBInstanceClass,EngineVersion]' \
--output table
------------------------------------------------
| DescribeOrderableDBInstanceOptions |
+------------------+---------------------------+
| db.r5.12xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.16xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.24xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.2xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.4xlarge | 8.0.mysql_aurora.3.02.2 |
| ..... |
| db.serverless | 8.0.mysql_aurora.3.02.2 |
| db.t3.large | 8.0.mysql_aurora.3.02.2 |
| db.t3.medium | 8.0.mysql_aurora.3.02.2 |
| db.t4g.large | 8.0.mysql_aurora.3.02.2 |
| db.t4g.medium | 8.0.mysql_aurora.3.02.2 |
+------------------+---------------------------+
jq コマンドと組み合わせ
CLIだけでも十分だが、文字列マッチングなどで柔軟な取得をしたい場合はjqコマンドと組み合わせると便利。
-r (--raw-output)
オプションでrawデータを出力select
&test
で文字列マッチング@tsv
でTSV形式の出力
$ aws rds describe-orderable-db-instance-options \
--engine aurora-mysql \
| jq -r '.OrderableDBInstanceOptions[] | select((.EngineVersion | test("8.0.mysql_aurora.3")) and (.DBInstanceClass | test("(small|medium)"))) | [.DBInstanceClass,.EngineVersion] | @tsv'
db.t3.medium 8.0.mysql_aurora.3.01.0
db.t4g.medium 8.0.mysql_aurora.3.01.0
db.t3.medium 8.0.mysql_aurora.3.01.1
db.t4g.medium 8.0.mysql_aurora.3.01.1
db.t3.medium 8.0.mysql_aurora.3.02.0
db.t4g.medium 8.0.mysql_aurora.3.02.0
db.t3.medium 8.0.mysql_aurora.3.02.1
db.t4g.medium 8.0.mysql_aurora.3.02.1
db.t3.medium 8.0.mysql_aurora.3.02.2
db.t4g.medium 8.0.mysql_aurora.3.02.2
基本的にドキュメントで確認可能だが、Terraformなどエンジンバージョンの正確な設定値がほしい場合に便利。
以上。